package com.yuju.vo.group;

import java.math.BigDecimal;
import java.util.Date;

import com.yuju.common.BaseVO;
import com.yuju.common.fileld.validator.Rule.Length;
import com.yuju.common.fileld.validator.Rule.NonNull;

/**
 * 类名：AgentCustomVO  <br />
 *
 * 功能：
 *
 * @author : jiaokn <br />
 * @Date : 2017年11月24日 下午1:51:20  <br />
 * @version : 1.1 <br />
 */
public class AgentCustomVO extends BaseVO {

	/**
     *  主键。存储UUID，由应用生成。,所属表字段为grp_agent_custom.id
     */
	@NonNull(message = "主键不能为空", serviceLine = "update,del,get")
    private String id;
    
	@NonNull(message = "所属分店不能为空", serviceLine = "save,update")
    private String myHotelId;
	
	private Byte isSelect;
    

    /**
     *  名称。,所属表字段为grp_agent_custom.name
     */
    @NonNull(message = "名称不能为空", serviceLine = "save,update")
    private String name;

    /**
     *  所属酒店。外键，引用酒店信息表（grp_hotel）的主键（id）。,所属表字段为grp_agent_custom.hotel_id
     */
    private String hotelId;

    /**
     *  所属集团。外键，引用集团信息表（grp_group）的主键（id）。,所属表字段为grp_agent_custom.group_id
     */
    @NonNull(message = "集团ID不能为空", serviceLine = "save,update")
    private String groupId;

    /**
     *  生效日期。,所属表字段为grp_agent_custom.effective_date
     */
    private Date effectiveDate;

    /**
     *  失效日期。,所属表字段为grp_agent_custom.expiry_date
     */
    private Date expiryDate;

    /**
     *  挂账类型。1表示不允许挂账，2表示允许挂账，有挂账限额，3 表示允许挂账，没有挂账限额。,所属表字段为grp_agent_custom.bill_type
     */
    private Byte billType;

    /**
     *  挂账限额。0表示不可挂账，-1表示无限制。,所属表字段为grp_agent_custom.bill_limit
     */
    private BigDecimal billLimit;

    /**
     *  ,所属表字段为grp_agent_custom.bill_balance
     */
    private BigDecimal billBalance;

    /**
     *  返佣模式。1按房费，2按间夜，3固定额。,所属表字段为grp_agent_custom.rebate_mode
     */
    private Byte rebateMode;

    /**
     *  返佣额度。根据返佣模式有多种表示方法。,所属表字段为grp_agent_custom.rebate_amount
     */
    private BigDecimal rebateAmount;

    /**
     *  传真。,所属表字段为grp_agent_custom.fax
     */
    private String fax;

    /**
     *  中介类别。1旅行社，2中介公司，3OTA，4中介个人。,所属表字段为grp_agent_custom.agent_type
     */
    private Byte agentType;

    /**
     *  销售员。外键，引用员工信息表（grp_employee）的主键（id）。,所属表字段为grp_agent_custom.sale_id
     */
    private String saleId;

    /**
     *  联系电话。,所属表字段为grp_agent_custom.phone
     */
    @Length(max = 11,min=11,message = "手机号必须是11位", serviceLine = "save,update")
    private String phone;

    /**
     *  联系人。,所属表字段为grp_agent_custom.contact_name
     */
    private String contactName;

    /**
     *  联系电话。,所属表字段为grp_agent_custom.contact_phone
     */
    private String contactPhone;

    /**
     *  地址。,所属表字段为grp_agent_custom.address
     */
    private String address;

    /**
     *  简介，限制2000个字符。,所属表字段为grp_agent_custom.info
     */
    private String info;

    /**
     *  是否逻辑删除。1表示已逻辑删除，2表示未逻辑删除，默认为2。,所属表字段为grp_agent_custom.is_deleted
     */
    private Byte isDeleted;

    /**
     *  创建时间。,所属表字段为grp_agent_custom.gmt_create
     */
    private Date gmtCreate;

    /**
     *  修改时间。,所属表字段为grp_agent_custom.gmt_modified
     */
    private Date gmtModified;
    
 // 每页显示记录数
  	@NonNull(message = "每页显示行数不能为空", serviceLine = "pager")
  	public Integer pageSize;
  	// 当前页码
  	@NonNull(message = "页数不能为空", serviceLine = "pager")
  	public Integer page;
  	
  	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}


    private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    public Date getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public Date getExpiryDate() {
        return expiryDate;
    }

    public void setExpiryDate(Date expiryDate) {
        this.expiryDate = expiryDate;
    }

    public Byte getBillType() {
        return billType;
    }

    public void setBillType(Byte billType) {
        this.billType = billType;
    }

    public BigDecimal getBillLimit() {
        return billLimit;
    }

    public void setBillLimit(BigDecimal billLimit) {
        this.billLimit = billLimit;
    }

    public BigDecimal getBillBalance() {
        return billBalance;
    }

    public void setBillBalance(BigDecimal billBalance) {
        this.billBalance = billBalance;
    }

    public Byte getRebateMode() {
        return rebateMode;
    }

    public void setRebateMode(Byte rebateMode) {
        this.rebateMode = rebateMode;
    }

    public BigDecimal getRebateAmount() {
        return rebateAmount;
    }

    public void setRebateAmount(BigDecimal rebateAmount) {
        this.rebateAmount = rebateAmount;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public Byte getAgentType() {
        return agentType;
    }

    public void setAgentType(Byte agentType) {
        this.agentType = agentType;
    }

    public String getSaleId() {
        return saleId;
    }

    public void setSaleId(String saleId) {
        this.saleId = saleId;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", hotelId=").append(hotelId);
        sb.append(", groupId=").append(groupId);
        sb.append(", effectiveDate=").append(effectiveDate);
        sb.append(", expiryDate=").append(expiryDate);
        sb.append(", billType=").append(billType);
        sb.append(", billLimit=").append(billLimit);
        sb.append(", billBalance=").append(billBalance);
        sb.append(", rebateMode=").append(rebateMode);
        sb.append(", rebateAmount=").append(rebateAmount);
        sb.append(", fax=").append(fax);
        sb.append(", agentType=").append(agentType);
        sb.append(", saleId=").append(saleId);
        sb.append(", phone=").append(phone);
        sb.append(", contactName=").append(contactName);
        sb.append(", contactPhone=").append(contactPhone);
        sb.append(", address=").append(address);
        sb.append(", info=").append(info);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append("]");
        return sb.toString();
    }

	public String getMyHotelId() {
		return myHotelId;
	}

	public void setMyHotelId(String myHotelId) {
		this.myHotelId = myHotelId;
	}

	public Byte getIsSelect() {
		return isSelect;
	}

	public void setIsSelect(Byte isSelect) {
		this.isSelect = isSelect;
	}

}
